AT-NFC  2.1 (win)
AT-NFC kernel set
Data Structures | Macros | Typedefs | Functions
t_nfc_ker_clb.h File Reference
#include <t_nfc_user_clb.h>
#include <emv_platform_set_align.h>
#include <emv_platform_restore_align.h>

Go to the source code of this file.

Data Structures

struct  tag_T_NFC_CALLBACKS
 Struct to handle all callbacks. More...
 

Macros

#define CLB_API   KER_API
 
#define T_NFC_CLB_CTX_SINGLE_PARAM   KER_INT32U ulRuntimeKernelID, KER_VOID* pCallbackHandle
 
#define T_NFC_CLB_CTX_PARAM   KER_INT32U ulRuntimeKernelID, KER_VOID* pCallbackHandle,
 
#define NUM_T_NFC_CALLBACK_GET_READER_TYPE   1
 Code, used to register T_NFC_CALLBACK_GET_READER_TYPE callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CARD_SENDCAPDU   2
 Code, used to register T_NFC_CALLBACK_CARD_SENDCAPDU callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CARD_RECEIVERAPDU   3
 Code, used to register T_NFC_CALLBACK_CARD_RECEIVERAPDU callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_FIELD_OFF   4
 Code, used to register T_NFC_CALLBACK_CARD_POWER_DOWN callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CARD_POLL   5
 Code, used to register T_NFC_CALLBACK_CARD_POWER_UP callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CARD_GETINFO   6
 Code, used to register T_NFC_CALLBACK_CARD_GETINFO callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CARD_REMOVAL_PROCEDURE   7
 Code, used to register T_NFC_CALLBACK_CARD_REMOVAL_PROCEDURE callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_RESET_OPERATION_FIELD   8
 Code, used to register T_NFC_CALLBACK_RESET_OPERATION_FIELD callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_GET_READER_SERIAL_NUMBER   9
 Code, used to register T_NFC_CALLBACK_GET_READER_SERIAL_NUMBER callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_TRACE_SET_MODE   11
 Code, used to register T_NFC_CALLBACK_TRACE_SET_MODE callback through t_nfc_RegisterCallback.
 
#define T_NFC_CALLBACK_TRACE_SET_MODE_STD   0
 
#define T_NFC_CALLBACK_TRACE_SET_MODE_SENS   1
 
#define NUM_T_NFC_CALLBACK_TRACE_GET_MODE   12
 Code, used to register T_NFC_CALLBACK_TRACE_GET_MODE callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_TRACE_STRING   13
 Code, used to register T_NFC_CALLBACK_TRACE_STRING callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_TRACE_BUFFER   14
 Code, used to register T_NFC_CALLBACK_TRACE_BUFFER callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_TRACE_TIME   15
 Code, used to register T_NFC_CALLBACK_TRACE_TIME callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_TRACE_ERROR   16
 Code, used to register T_NFC_CALLBACK_TRACE_ERROR callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_KEEP_TRACE_TIME   17
 Code, used to register T_NFC_CALLBACK_KEEP_TRACE_TIME callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_TRACE_FLUSH   18
 Code, used to register T_NFC_CALLBACK_TRACE_FLUSH callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_CMP   21
 Code, used to register T_NFC_CALLBACK_MEM_CMP callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_SET   22
 Code, used to register T_NFC_CALLBACK_MEM_SET callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_CPY   23
 Code, used to register T_NFC_CALLBACK_MEM_CPY callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_MOVE   24
 Code, used to register T_NFC_CALLBACK_MEM_MOVE callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_ADD   25
 Code, used to register T_NFC_CALLBACK_MEM_ADD callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_SPRINTF   26
 Code, used to register T_NFC_CALLBACK_MEM_SPRINTF callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_VSPRINTF   27
 Code, used to register T_NFC_CALLBACK_MEM_VSPRINTF callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_ALLOC   28
 Code, used to register T_NFC_CALLBACK_MEM_ALLOC callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_MEM_RELEASE_EX   29
 Code, used to register T_NFC_CALLBACK_MEM_RELEASE_EX callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_GET_CONFIG_BY_ID   31
 Code, used to register T_NFC_CALLBACK_CFG_GET_CONFIG_BY_ID callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_GET_CUST_TAG_BY_ID   32
 Code, used to register T_NFC_CALLBACK_CFG_GET_CUST_TAG_BY_ID callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_GET_ID_BY_CUST_TAG   33
 Code, used to register T_NFC_CALLBACK_CFG_GET_ID_BY_CUST_TAG callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_IS_TRAN_CASH   34
 Code, used to register T_NFC_CALLBACK_CFG_IS_TRAN_CASH callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_IS_TRAN_SALE   35
 Code, used to register T_NFC_CALLBACK_CFG_IS_TRAN_SALE callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_IS_TRAN_CASHBACK   36
 Code, used to register T_NFC_CALLBACK_CFG_IS_TRAN_CASHBACK callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_IS_TRAN_MAN_CASH   37
 Code, used to register T_NFC_CALLBACK_CFG_IS_TRAN_MAN_CASH callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_IS_TRAN_REFUND   38
 Code, used to register T_NFC_CALLBACK_CFG_IS_TRAN_REFUND callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_IS_APPROVED_ONLINE   39
 Code, used to register T_NFC_CALLBACK_CFG_IS_APPROVED_ONLINE callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_SET_CONFIG_BY_ID   40
 Code, used to register T_NFC_CALLBACK_CFG_SET_CONFIG_BY_ID callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CFG_GET_EP_CONFIG   41
 Code, used to register T_NFC_CALLBACK_CFG_GET_EP_CONFIG callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_GET_DEFAULT_KERNEL_ID   42
 Code, used to register T_NFC_CALLBACK_GET_DEFAULT_KERNEL_ID callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_GET_CUSTOM_KERNEL_ID   43
 Code, used to register T_NFC_CALLBACK_GET_DEFAULT_KERNEL_ID callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CV_CHECK_CVM_COND   51
 Code, used to register T_NFC_CALLBACK_CV_CHECK_CVM_COND callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CV_APPLY_CVM   52
 Code, used to register T_NFC_CALLBACK_CV_APPLY_CVM callback through t_nfc_RegisterCallback.
 
#define T_NFC_CVM_RES_OK   0x00
 
#define T_NFC_CVM_RES_UNSUPP   0x01
 
#define T_NFC_CVM_RES_UNREC   0x02
 
#define T_NFC_CVM_RES_FAIL   0x03
 
#define NUM_T_NFC_CALLBACK_DEX_DATAFROMKERNEL   61
 Code, used to register T_NFC_CALLBACK_DEX_DATAFROMKERNEL callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_DEX_DATAFROMTERMINAL   62
 Code, used to register T_NFC_CALLBACK_DEX_DATAFROMTERMINAL callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_DEX_FREERESULT_EX   63
 Code, used to register T_NFC_CALLBACK_DEX_FREERESULT_EX callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CRYPT_HASH   71
 Code, used to register T_NFC_CALLBACK_CRYPT_HASH callback through t_nfc_RegisterCallback.
 
#define T_NFC_CALLBACK_CRYPT_HASH_ALG_TC_HASH   0
 
#define T_NFC_CALLBACK_CRYPT_HASH_ALG_SHA1   1
 
#define NUM_T_NFC_CALLBACK_CRYPT_HASH_INIT   72
 Code, used to register T_NFC_CALLBACK_CRYPT_HASH_INIT callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CRYPT_HASH_UPDATE   73
 Code, used to register T_NFC_CALLBACK_CRYPT_HASH_UPDATE callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CRYPT_HASH_COMPLETE   74
 Code, used to register T_NFC_CALLBACK_CRYPT_HASH_COMPLETE callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CRYPT_UNPRED_NUMBER   75
 Code, used to register T_NFC_CALLBACK_CRYPT_UNPRED_NUMBER callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CRYPT_SET_AC   76
 Code, used to register T_NFC_CALLBACK_CRYPT_SET_AC callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CRYPT_GET_CA_PK   77
 Code, used to register T_NFC_CALLBACK_CRYPT_GET_CA_PK callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_CRYPT_MSG_RECOVERY   78
 Code, used to register T_NFC_CALLBACK_CRYPT_MSG_RECOVERY callback through t_nfc_RegisterCallback.
 
#define T_NFC_CALLBACK_CRYPT_REC_ALG_RSA_EMV   1
 
#define NUM_T_NFC_CALLBACK_CRYPT_CERT_REVOCATION   79
 Code, used to register T_NFC_CALLBACK_CRYPT_CERT_REVOCATION callback through t_nfc_RegisterCallback.
 
#define T_NFC_CALLBACK_CRYPT_CERT_INFO_VER   0
 
#define NUM_T_NFC_CALLBACK_CRYPT_ENCRYPT   80
 Code, used to register T_NFC_CALLBACK_CRYPT_ENCRYPT callback through t_nfc_RegisterCallback.
 
#define T_NFC_CALLBACK_CRYPT_ALG_DES   0x00
 
#define T_NFC_CALLBACK_CRYPT_ALG_AES   0x10
 
#define T_NFC_CALLBACK_CRYPT_ALG_NA   0xFF
 
#define NUM_T_NFC_CALLBACK_CRYPT_DECRYPT   81
 Code, used to register T_NFC_CALLBACK_CRYPT_DECRYPT callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_INIT_CHECKSUM_EX   91
 Code, used to register T_NFC_CALLBACK_INIT_CHECKSUM_EX callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_UI_SCHEDULE_CHANGE_REQUEST   101
 Code, used to register T_NFC_CALLBACK_UI_SCHEDULE_CHANGE_REQUEST callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_UI_CANCEL_CHANGE_REQUEST   102
 Code, used to register T_NFC_CALLBACK_UI_CANCEL_CHANGE_REQUEST callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_SYS_SLEEP   111
 Code, used to register T_NFC_CALLBACK_SYS_SLEEP callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_SYS_GET_100_MICROSEC_TIMESTAMP   112
 Code, used to register T_NFC_CALLBACK_SYS_GET_100_MICROSEC_TIMESTAMP callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_SYS_GET_DATE_TIME   113
 Code, used to register T_NFC_CALLBACK_SYS_GET_DATE_TIME callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_SYS_GET_UTC_DATE_TIME   114
 Code, used to register T_NFC_CALLBACK_SYS_GET_UTC_DATE_TIME callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_NOTIFY   121
 Code, used to register T_NFC_CALLBACK_NOTIFY callback through t_nfc_RegisterCallback.
 
#define NUM_T_NFC_CALLBACK_ONLINE_CHECK   122
 Code, used to register T_NFC_CALLBACK_ONLINE_CHECK callback through t_nfc_RegisterCallback.
 
#define T_NFC_CALLBACKS_VER_00   0x00
 Struct to handle all callbacks version. More...
 
#define T_NFC_CALLBACKS_VER   T_NFC_CALLBACKS_VER_00
 
#define T_NFC_DE_RES_OK   0x0000
 T_NFC_CALLBACK_DEX_DATAFROMTERMINAL callback result codes definition More...
 
#define T_NFC_DE_RES_TIMEOUT   0x0001
 
#define T_NFC_DE_RES_NO_DATA   0x0002
 
#define T_NFC_DE_RES_FAIL   0x0003
 

Typedefs

typedef struct tag_T_NFC_CALLBACKS T_NFC_CALLBACKS
 Struct to handle all callbacks.
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_GET_READER_TYPE) (T_NFC_CLB_CTX_PARAM KER_CHAR *data, KER_BYTE *dlen)
 Get IFD type for IFD related config Optional Callback. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CARD_SENDCAPDU) (T_NFC_CLB_CTX_PARAM KER_BYTE btCase, KER_BYTE btCls, KER_BYTE btIns, KER_BYTE btP1, KER_BYTE btP2, KER_INT16U usLc, const KER_BYTE *pbtDataIn, KER_INT16U usLe)
 Send APDU requset to card. More...
 
typedef KER_RES(CLB_API * T_NFC_CALLBACK_CARD_RECEIVERAPDU) (T_NFC_CLB_CTX_PARAM KER_INT16U usTimeout, KER_BYTE *pbtDataOut, KER_INT16U *pusDataOutLength, KER_INT16U usDataOutMaxLength, KER_INT16U *pusSW1SW2, KER_INT32U *pulExecutionTime)
 Obtain APDU response from card. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_FIELD_OFF) (T_NFC_CLB_CTX_SINGLE_PARAM)
 PCD field off request. More...
 
typedef KER_RES(CLB_API * T_NFC_CALLBACK_CARD_POLL) (T_NFC_CLB_CTX_PARAM KER_INT32U ulTimeout, KER_INT16U *pusCardType, KER_BYTE *pbtUID, KER_INT16U *pusUIDLen)
 PCD field on and card polling during specified timeout. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CARD_GETINFO) (T_NFC_CLB_CTX_PARAM KER_INT16U *pusCardType, KER_BYTE *pbtUID, KER_INT16U *pusUIDLen)
 Callback returns info for last activated card. More...
 
typedef KER_RES(CLB_API * T_NFC_CALLBACK_CARD_REMOVAL_PROCEDURE) (T_NFC_CLB_CTX_PARAM KER_INT32U ulTimeout)
 Performs EMV L1 card removal procedure Callback called by Entry Point only. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_RESET_OPERATION_FIELD) (T_NFC_CLB_CTX_SINGLE_PARAM)
 Reset operation field Callback called by Entry Point only. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_GET_READER_SERIAL_NUMBER) (T_NFC_CLB_CTX_PARAM KER_CHAR *data, KER_BYTE *dlen)
 Get serial number of the IFD Optional Callback. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_TRACE_SET_MODE) (T_NFC_CLB_CTX_PARAM KER_BYTE btTraceMode)
 Set trace mode. More...
 
typedef KER_BYTE(CLB_API * T_NFC_CALLBACK_TRACE_GET_MODE) (T_NFC_CLB_CTX_SINGLE_PARAM)
 Get trace mode. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_TRACE_STRING) (T_NFC_CLB_CTX_PARAM const KER_CHAR *pchString)
 Trace povided nul-term string. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_TRACE_BUFFER) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtDataBuffer, KER_INT16U usDataBufferSize)
 Trace povided data buffer. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_TRACE_TIME) (T_NFC_CLB_CTX_SINGLE_PARAM)
 Trace timestamp. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_TRACE_ERROR) (T_NFC_CLB_CTX_PARAM KER_INT16U usTraceLevel, KER_RES resErrCode, const KER_CHAR *pchErrorText)
 Trace error to system error journal. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_KEEP_TRACE_TIME) (T_NFC_CLB_CTX_PARAM KER_BYTE *pbtTimeBuffer, KER_INT16U *pusTimeBufferSize)
 Keep trace timestamp. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_TRACE_FLUSH) (T_NFC_CLB_CTX_SINGLE_PARAM)
 Flush trace to tracefile (optional) More...
 
typedef KER_INT32S(CLB_API * T_NFC_CALLBACK_MEM_CMP) (T_NFC_CLB_CTX_PARAM const KER_VOID *pvBuffer1, const KER_VOID *pvBuffer2, KER_INT16U usCount)
 Compare memory buffers. More...
 
typedef KER_VOID *(CLB_API * T_NFC_CALLBACK_MEM_SET) (T_NFC_CLB_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_BYTE btValue, KER_INT16U usCount)
 Reset memory buffer with specified value. More...
 
typedef KER_INT16U(CLB_API * T_NFC_CALLBACK_MEM_CPY) (T_NFC_CLB_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, const KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize)
 Copy one memory buffer to another. More...
 
typedef KER_VOID *(CLB_API * T_NFC_CALLBACK_MEM_MOVE) (T_NFC_CLB_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize)
 Copy one memory buffer to another (event if buffer overlaped) More...
 
typedef KER_INT16U(CLB_API * T_NFC_CALLBACK_MEM_ADD) (T_NFC_CLB_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_INT16U usDestBufferOffset, const KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize)
 Add memory buffer to existing buffer with offset. More...
 
typedef KER_INT16U(KER_CDECL * T_NFC_CALLBACK_MEM_SPRINTF) (T_NFC_CLB_CTX_PARAM KER_CHAR *pchDestBuffer, KER_INT16U usDestBufferSize, const KER_CHAR *pchFormat,...)
 sprintf_s analog More...
 
typedef KER_INT16U(KER_CDECL * T_NFC_CALLBACK_MEM_VSPRINTF) (T_NFC_CLB_CTX_PARAM KER_CHAR *pchDestBuffer, KER_INT16U usDestBufferSize, const KER_CHAR *pchFormat, va_list _ArgList)
 sprintf_s analog More...
 
typedef KER_VOID *(CLB_API * T_NFC_CALLBACK_MEM_ALLOC) (T_NFC_CLB_CTX_PARAM KER_INT16U usBufferSize)
 allocate memory buffer More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_MEM_RELEASE_EX) (T_NFC_CLB_CTX_PARAM KER_VOID *pBuffer, KER_INT16U usBufferSize)
 release previously allocated memory buffer More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_GET_CONFIG_BY_ID) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtAID, KER_INT16U usAIDLen, const KER_TLV *pTranDataList, const KER_TLV *pTranContextList, KER_INT16U usID, KER_BYTE *pbtValue, KER_INT16U *pusValueLen, KER_INT16U usMaxLen)
 Provide terminal configuration specific for AID-Transaction data combination which have no emv tag assinged by ID. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_GET_CUST_TAG_BY_ID) (T_NFC_CLB_CTX_PARAM KER_INT16U usID, KER_BYTE *pbtValue, KER_INT16U *pusValueLen, KER_INT16U usMaxLen)
 Remapp terminal configuration id to custom tag. More...
 
typedef KER_INT16U(CLB_API * T_NFC_CALLBACK_CFG_GET_ID_BY_CUST_TAG) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtTag, KER_INT16U usTagLen)
 Remapp custom tag to configuration ID. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_IS_TRAN_CASH) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType)
 Check transaction type (9C) for cash tran (cash or cash disbursement at POS) More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_IS_TRAN_SALE) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType)
 Check transaction type (9C) for goods and services. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_IS_TRAN_CASHBACK) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType)
 Check transaction type (9C) for cashback. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_IS_TRAN_MAN_CASH) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType)
 Check transaction type (9C) for cashback. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_IS_TRAN_REFUND) (T_NFC_CLB_CTX_PARAM KER_BYTE btTranType)
 Check transaction type (9C) for cashback. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_IS_APPROVED_ONLINE) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtARC, KER_INT16U usARCLen)
 Check online result by ARC. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_SET_CONFIG_BY_ID) (T_NFC_CLB_CTX_PARAM KER_INT16U usID, const KER_BYTE *pbtValue, KER_INT16U usValueLen)
 Keeps trerminal params in "scratch pad". More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CFG_GET_EP_CONFIG) (T_NFC_CLB_CTX_PARAM const KER_TLV *pTranData, HAL_CONFIG_NFC_COMB **ppCombList)
 Provides configuration (common / combination / tran related for EP This callback called by Entry Point only. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_GET_DEFAULT_KERNEL_ID) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pAID, KER_INT16U usAIDLen, KER_BYTE *pbtKernelID, KER_BYTE *pbtKernelIDLen, KER_BYTE btMaxLen)
 Provides default AID - Kernel ID mapping Optional callback called by Entry Point only. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_GET_CUSTOM_KERNEL_ID) (T_NFC_CLB_CTX_PARAM const KER_BYTE *p61, KER_INT16U us61Len, KER_BYTE *pbtKernelID, KER_BYTE *pbtKernelIDLen, KER_BYTE btMaxLen)
 Provides custom mapping between Directory Entry and Requested Kernel ID Optional callback called by Entry Point only. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CV_CHECK_CVM_COND) (T_NFC_CLB_CTX_PARAM KER_BYTE btCVM, KER_BYTE btCondition)
 Check if non standard cvm condition met. More...
 
typedef KER_BYTE(CLB_API * T_NFC_CALLBACK_CV_APPLY_CVM) (T_NFC_CLB_CTX_PARAM KER_BYTE btCVM, KER_BYTE *pbtRes, KER_BYTE *pbtOutcomeCVM, KER_BYTE *pbtTVR, KER_BYTE btTVRLen)
 Apply non standard cvm. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_DEX_DATAFROMKERNEL) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtKernelData, KER_INT16U usKernelDataLen)
 Data exchange callback. More...
 
typedef KER_RES(CLB_API * T_NFC_CALLBACK_DEX_DATAFROMTERMINAL) (T_NFC_CLB_CTX_PARAM KER_INT16U usTimeout, KER_INT16U usParam, KER_VOID *pParam, KER_BYTE **ppbtTerminalData, KER_INT16U *pusTerminalDataLen)
 Data exchange callback. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_DEX_FREERESULT_EX) (T_NFC_CLB_CTX_PARAM KER_BYTE *pbtData, KER_INT16U usDataLen)
 Data exchange callback. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_HASH) (T_NFC_CLB_CTX_PARAM KER_BYTE btAlg, KER_VOID *pExtra, const KER_BYTE *pbtDataBuffer, KER_INT16U usDataBufferLen, KER_BYTE *pbtHash, KER_INT16U *pusHashLen, KER_INT16U usHashSize)
 Calculates hash for data buffer provided. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_HASH_INIT) (T_NFC_CLB_CTX_PARAM KER_BYTE btAlg, KER_VOID *pExtra, KER_VOID **ppHashHandle)
 Initiates hash calculation. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_HASH_UPDATE) (T_NFC_CLB_CTX_PARAM KER_VOID *pHashHandle, KER_BYTE btAlg, const KER_BYTE *pbtDataBuffer, KER_INT16U usDataBufferLen)
 Passes data for hash calculation (can be executed several times) More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_HASH_COMPLETE) (T_NFC_CLB_CTX_PARAM KER_VOID *pHashHandle, KER_BYTE btAlg, KER_BYTE *pbtHash, KER_INT16U *pusHashLen, KER_INT16U usHashSize)
 Calculates hash on prev. provided data. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_UNPRED_NUMBER) (T_NFC_CLB_CTX_PARAM KER_INT16U usUnpredNumLen, KER_BYTE *pbtUnpredNum)
 Calculates unpredictable number. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_SET_AC) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtAc, KER_INT16U usAcLen)
 Updates unpredictable (random) number calculator with last AC (9F26) value (only if it was obtained from card) More...
 
typedef struct tag_HAL_CRYPT_PK HAL_CRYPT_PK
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_GET_CA_PK) (T_NFC_CLB_CTX_PARAM KER_BYTE btKernelID, const KER_BYTE *pbtRID, KER_BYTE btRIDLen, KER_BYTE btKeyIndex, HAL_CRYPT_PK *pCA_PK)
 Get CA PK by index from repositoty. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_MSG_RECOVERY) (T_NFC_CLB_CTX_PARAM const KER_BYTE *pbtPK, KER_INT16U usPKLen, const KER_BYTE *pbtExp, KER_INT16U usExpLen, KER_BYTE btAlg, const KER_BYTE *pbtMsg, KER_INT16U usMsgLen, KER_BYTE *pbtResult, KER_INT16U *pusResultLen, KER_INT16U usMaxLen)
 Message recovery according to EMV Book 2, Appendix A2.1. More...
 
typedef struct tag_HAL_CRYPT_CERT_INFO HAL_CRYPT_CERT_INFO
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_CERT_REVOCATION) (T_NFC_CLB_CTX_PARAM KER_BYTE btKernelID, const KER_BYTE *pbtRID, KER_BYTE btRIDLen, KER_BYTE btKeyIndex, const HAL_CRYPT_CERT_INFO *pCert)
 Get CA PK by index from repositoty. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_ENCRYPT) (T_NFC_CLB_CTX_PARAM KER_BYTE btAlg, const KER_BYTE *pbtKey, KER_INT16U usKeyLen, const KER_BYTE *pbtIV, KER_INT16U usIVLen, const KER_BYTE *pbtData, KER_INT16U usDataLen, KER_BYTE *pbtResult, KER_INT16U *pusResultLen, KER_INT16U usMaxLen)
 Performs encryption. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_CRYPT_DECRYPT) (T_NFC_CLB_CTX_PARAM KER_BYTE btAlg, const KER_BYTE *pbtKey, KER_INT16U usKeyLen, const KER_BYTE *pbtIV, KER_INT16U usIVLen, const KER_BYTE *pbtData, KER_INT16U usDataLen, KER_BYTE *pbtResult, KER_INT16U *pusResultLen, KER_INT16U usMaxLen)
 Performs decryption. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_INIT_CHECKSUM_EX) (T_NFC_CLB_CTX_PARAM KER_BYTE btType, const KER_CHAR *pchKernelModuleList, KER_INT16U usKernelModuleListLen, KER_BYTE *pbtCheckSum, KER_INT16U *pusCheckSumLen, KER_INT16U usMaxSize)
 Pass checksums to the kernel. More...
 
typedef KER_INT16U(CLB_API * T_NFC_CALLBACK_UI_SCHEDULE_CHANGE_REQUEST) (T_NFC_CLB_CTX_PARAM KER_INT32U ulDelayTime, const NFC_OUTCOME_UI *pUI)
 Schedule async change User Interface request. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_UI_CANCEL_CHANGE_REQUEST) (T_NFC_CLB_CTX_PARAM KER_INT16U usRequestID)
 Cancel prev. scheduled async change User Interface request. More...
 
typedef KER_VOID(CLB_API * T_NFC_CALLBACK_SYS_SLEEP) (T_NFC_CLB_CTX_PARAM KER_INT32U ulTimeout)
 Sleeps for specified timeout. More...
 
typedef KER_INT32U(CLB_API * T_NFC_CALLBACK_SYS_GET_100_MICROSEC_TIMESTAMP) (T_NFC_CLB_CTX_SINGLE_PARAM)
 Provides terminal timestamp for Kernel (in 100 microsec resolution) More...
 
typedef KER_BYTE(CLB_API * T_NFC_CALLBACK_SYS_GET_DATE_TIME) (T_NFC_CLB_CTX_PARAM KER_BYTE *pbtDateTimeBuffer, KER_BYTE btDateTimeBufferLen)
 Provides local terminal date & time for Kernel. More...
 
typedef KER_BYTE(CLB_API * T_NFC_CALLBACK_SYS_GET_UTC_DATE_TIME) (T_NFC_CLB_CTX_PARAM KER_BYTE *pbtDateTimeBuffer, KER_BYTE btDateTimeBufferLen)
 Provides terminal UTC date & time for Kernel. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_NOTIFY) (T_NFC_CLB_CTX_PARAM KER_INT16U usNotifyType, const KER_VOID *pNotifyData, KER_INT16U usNotifyDataLen)
 Notifies HAL about some specific event. More...
 
typedef KER_BOOL(CLB_API * T_NFC_CALLBACK_ONLINE_CHECK) (T_NFC_CLB_CTX_SINGLE_PARAM)
 Checks HAL for unable to go online condition (for AmEx C-4). More...
 

Functions

KER_RES nfcRegisterCallback (T_NFC_CALLBACKS *pCallbacks, KER_INT16U usCllbackID, KER_VOID *pCallback)
 HAL callback registration. More...
 

Detailed Description

T-NFC KERNEL callback interface

Macro Definition Documentation

◆ T_NFC_CALLBACK_CRYPT_ALG_AES

#define T_NFC_CALLBACK_CRYPT_ALG_AES   0x10

AES

◆ T_NFC_CALLBACK_CRYPT_ALG_DES

#define T_NFC_CALLBACK_CRYPT_ALG_DES   0x00

DES

◆ T_NFC_CALLBACK_CRYPT_ALG_NA

#define T_NFC_CALLBACK_CRYPT_ALG_NA   0xFF

N/A

◆ T_NFC_CALLBACK_CRYPT_CERT_INFO_VER

#define T_NFC_CALLBACK_CRYPT_CERT_INFO_VER   0

initial version

◆ T_NFC_CALLBACK_CRYPT_HASH_ALG_SHA1

#define T_NFC_CALLBACK_CRYPT_HASH_ALG_SHA1   1

SHA1 hash for CDA

◆ T_NFC_CALLBACK_CRYPT_HASH_ALG_TC_HASH

#define T_NFC_CALLBACK_CRYPT_HASH_ALG_TC_HASH   0

20 bytes hash for tag 98

◆ T_NFC_CALLBACK_CRYPT_REC_ALG_RSA_EMV

#define T_NFC_CALLBACK_CRYPT_REC_ALG_RSA_EMV   1

MSG Recovery by RSA, EMV Book 2 Annex A2.1

◆ T_NFC_CVM_RES_FAIL

#define T_NFC_CVM_RES_FAIL   0x03

failure (not verified)

◆ T_NFC_CVM_RES_OK

#define T_NFC_CVM_RES_OK   0x00

cvm applied, cv completed

◆ T_NFC_CVM_RES_UNREC

#define T_NFC_CVM_RES_UNREC   0x02

cvm unrecognised

◆ T_NFC_CVM_RES_UNSUPP

#define T_NFC_CVM_RES_UNSUPP   0x01

cvm unsupported